Field
The present invention relates to computing devices. In particular, but not by way of limitation, the present invention relates to compiling or interpreting scripting code.
Background
More and more websites are utilizing source code constructs that are written in high level programming languages that must be compiled or interpreted before many other activities (e.g., layout calculations, rendering,) associated with the constructs can be executed. By way of example, ECMAscript-based scripting languages (e.g., JavaScript or Flash) are frequently used in connection with the content that they host. More specifically, JavaScript-based content is ubiquitous, and JavaScripts are run by a JavaScript engine that may be realized by a variety of technologies including interpretation-type engines, HotSpot just-in-time (JIT) compilation (e.g., trace based or function based), and traditional-function-based JIT compilation where native code is generated for the entire body of all the functions that get executed.
A large amount of data in a virtual machine (e.g., a JavaScript engine or engine associated with another dynamic language) includes pointers (e.g., pointers to objects, maps, etc, in the virtual machine heap), and the size of the pointers will be increasing as new hardware is developed. For example, pointer sizes will be increasing from 32-bits to 64-bits as hardware moves from 32-bit architectures to 64-bit architectures. As a consequence, there will be a substantial increase in the size of data/object heaps, which may potentially place undesirable pressure on memory resources.